#pragma once

#include "zakengine/zak.h"
#include"../peon.h"
#include"../goldmine.h"
#include"../townhall.h"
#include "../level.h"
#include "../peonstates.h"
#include "../vehicle.h"

using namespace zak;

#define GAME_STAGE_NONE			0
#define GAME_STAGE_EXIT			1

class InGame 
{
public:
	// Initialize Game
	//////////////////
	bool Initialize(int iLevel);

	// End Game
	///////////
	bool Shutdown();

	// Sets the current Stage
	/////////////////////////
	void SetStage(int iStage) { m_iStage = iStage; }
	
	// Returns this Stage
	/////////////////////
	int GetStage() { return m_iStage; }

	// Update
	/////////
	void Update(float dt);
	
	// Draw
	///////
	void Draw();

	InGame();
	~InGame();

	const std::vector<Vehicle*>&   Agents(){return m_Vehicles;}

private:
	// Stage
	////////
	int			m_iStage;

	// Game Entities
	////////////////
	Peon*		m_pPeon;
	GoldMine*	m_pGoldMine;
	TownHall*	m_pTownHall;

	std::vector<Vehicle*>       m_Vehicles;
};